#ifndef _WND_HANDLE_H_
#define _WND_HANDLE_H_

#include "wnd_widget.h"

//#include "wnd_set.h"


#ifdef __cplusplus
extern "C" {
#endif  /* __cplusplus */


/* 主窗口的类型*/
typedef enum main_wnd_type_e {
	MAIN_WND_TYPE_NONE = 0,
	MAIN_WND_TYPE_MAIN_E,				//!<	界面开机的第一个窗口， 有四九画面切换的
	MAIN_WND_TYPE_DEV_MNG_E,			//!<	设备管理界面
	MAIN_WND_TYPE_SET_E,				//!<	设置界面
	MAIN_WND_TYPE_VIDEO_SEARCH_E,		//!<	录像搜索
}MAIN_WND_TYPE_E;

#if 0
/* 窗口结构体*/
typedef struct main_wnd_handle_attr_s {
	char s8Name[24];				//!<	窗口的名称 本名称不会显示在窗口，只是调试打印时候用下
	HWND u32WndId;					//!<	主窗口的id
	HWND u32ParentWndId;			//!<	父窗口的窗口id
	MAIN_WND_TYPE_E enWndType;		//!<	窗口的功能、类型
	WND_WIDGET_S *pstWnd; 			//!<	窗口里的组件集合 + 窗口
	int s32WndNum;					//!<	组件集合的数量
}MAIN_WND_HANDLE_ATTR_S;



typedef struct main_wnd_handle_FOPS_s {
	int (*CallBack)(HWND hWnd, int message, WPARAM wParam, LPARAM lParam);
}MAIN_WND_HANDLE_FOPS_S;




/* 主窗口结构体*/
typedef struct main_wnd_handle_s {
	MAIN_WND_HANDLE_ATTR_S stAttr;
	MAIN_WND_HANDLE_FOPS_S stFops;
}MAIN_WND_HANDLE_S;




/* 主窗口模块结构体集合*/
typedef struct main_module_s {
	int s32ScreenWidth;						//!<	屏幕宽度
	int s32ScreenHeight;					//!<	屏幕高度
	MAIN_WND_HANDLE_S *pstMainWndArray;		//!<	主窗口的集合
	int s32MainWndNum;						//!<	主窗口的数量
}MAIN_MODULE_S;



#endif

















/**
 * @brief 主窗口模块结构体集合
 */
typedef struct wnd_handle_s {
    int s32ScreenWidth;              	//!<	屏幕真实宽度 开机获取
    int s32ScreenHeight;             	//!<	屏幕真实高度 开机获取
    UI_COLOUR_E enDefaultBkColour;   	//!<	默认窗口背景颜色
    unsigned int u32SoftKeyWndId;    	//!<	软键盘窗口id
    WND_WIDGET_S **pstWnd;           	//!<	主窗口的数组
    int s32WndNum;                   	//!<	主窗口的数量
	WND_WIDGET_FONT_S stDefaultFont;	//!<	默认的字体风格
}WND_HANDLE_S;



WND_HANDLE_S stGlbMainWndHandle;

/*!
 * 创建一个主窗口
 * @param enMainType 要创建的组窗口的类型
 * @return 返回创建的主窗口的句柄
 * @see
 */
extern WND_WIDGET_S *WND_HANDLE_CreateMainWnd(MAIN_WND_TYPE_E enMainType);

/*!
 * 销毁一个主窗口
 * @param enType 要销毁的主窗口的类型
 * @see
 */
extern void WND_HANDLE_Destroy(MAIN_WND_TYPE_E enType);


/*!
 * 销毁所有的主窗口
 * @see
 */
extern void WND_HANDLE_DestroyAll(void);


/*!
 * 找到主窗口
 * @param enMainType 根据类型找到主窗口
 * @return  返回找到的主窗口句柄
 * @see
 */
extern WND_WIDGET_S *WND_HANDLE_GetMainWnd(MAIN_WND_TYPE_E enMainType);

#ifdef __cplusplus
}
#endif  /* __cplusplus */


#endif
